home *** CD-ROM | disk | FTP | other *** search
- Path: conch.aa.msen.com!not-for-mail
- From: brain@mail.msen.com (Jim Brain)
- Newsgroups: alt.folklore.computers,comp.sys.cbm
- Subject: Re: Vic-20/C-64 serial ports
- Date: 10 Jan 1996 17:04:13 -0500
- Organization: Brain Innovations, Incorporated
- Sender: brain@msen.com
- Message-ID: <hrp8wwyjt43D088yn@mail.msen.com>
- References: <4cn3ba$ifj@celebrian.otago.ac.nz>
- NNTP-Posting-Host: conch.aa.msen.com
- Mime-Version: 1.0
- Content-Type: text/plain; charset=ISO-8859-1
- Content-Transfer-Encoding: 8bit
- X-Newsreader: Yarn 0.88 with YES 0.21.B1109
- X-URL: http://www.msen.com/~brain/
-
-
-
- In article <4cn3ba$ifj@celebrian.otago.ac.nz>,
- simon.brady@stonebow.otago.ac.nz (The Arch-Deviant) wrote:
- >Isn't it scary what you remember? I was staring at the "please wait..." message
- >on a swipe-card reader this morning, and started thinking about how much of my
- >youth was spent reading those same words while waiting for Vic-20 programs to
- >load off tape. This got me thinking about how, by the time we had a C-128 (but
- >still no disk drive), things had advanced to "Invader Load", a hectic version
- >of space invaders you could play while the tape rolled.
- >
- >The reason they could do this was that tape I/O was interrupt-driven, and to
- >finally get to the point of this post I'm struck by the irony of a system that
- >has interrupt-driven code for tape but software polling for disk I/O.
- >
- >My question is, why did Commodore implement the serial protocol in software?
- >Both the 6522 and 6526 had hardware shift registers and associated interrupt
- >capability, but until the 128's fast serial mode these were never used. Does
- >anyone know why not?
- >
- >TIA...
- >
- >Simon Brady "I've been an awful woman all my life
- >University of Otago A dreadful daughter and a hopeless wife
- >Dunedin, New Zealand Well I've had my eyes on that carving knife
- >simon.brady@stonebow.otago.ac.nz Oh you've been lucky, so far..."
- > - Kirsty MacColl, 'Bad'
-
-
- From the trivia:
-
-
- Q $07B) When the VIC-20 was designed, the serial port throughput was roughly
- equivalent to the throughput of the IEEE-488 bus? Why isn't it
- very fast in production VICs?
-
- A $07B) Let's go back to question $04F:
-
- <begin insert>
- Q $04F) What was the primary reason Commodore went to a serial bus
- with the introduction of the VIC-20?
-
- A $04F) Jim Butterfield supplied me with this one:
-
- As you know, the first Commodore computers used the IEEE bus
- to connect to peripherals such as disk and printer. I
- understand that these were available only from one source:
- Belden cables. A couple of years into Commodore's computer
- career, Belden went out of stock on such cables (military
- contract? who knows?). In any case, Commodore were in quite
- a fix: they made computers and disk drives, but couldn't
- hook 'em together! So Tramiel issued the order: "On our next
- computer, get off that bus. Make it a cable anyone can
- manufacture". And so, starting with the VIC-20 the serial
- bus was born. It was intended to be just as fast as the
- IEEE-488 it replaced.
- <end insert>
-
- And here is what Jim Butterfield followed up with:
-
- "Technically, the idea was sound: the 6522 VIA chip has a "shift
- register" circuit that, if tickled with the right signals (data and
- clock) will cheerfully collect 8 bits of data without any help from
- the CPU. At that time, it would signal that it had a byte to be
- collected, and the processor would do so, using an automatic
- handshake built into the 6522 to trigger the next incoming byte.
- Things worked in a similar way outgoing from the computer, too.
- We early PET/CBM freaks knew, from playing music, that there was
- something wrong with the 6522's shift register: it interfered with
- other functions. The rule was: turn off the music before you start
- the tape! (The shift register was a popular sound generator). But
- the Commodore engineers, who only made the chip, didn't know this.
- Until they got into final checkout of the VIC-20.
-
- By this time, the VIC-20 board was in manufacture. A new chip could
- be designed in a few months (yes, the silicon guys had application
- notes about the problem, long since), but it was TOO LATE!
-
- A major software rewrite had to take place that changed the VIC-20
- into a "bit-catcher" rather than a "character-catcher". It called for
- eight times as much work on the part of the CPU; and unlike the shift
- register plan, there was no timing/handshake slack time. The whole
- thing slowed down by a factor of approximately 5 to 6.
-
- When the 64 came out, the problem VIA 6522 chip had been
- replaced by the CIA 6526. This did not have the shift register
- problem which had caused trouble on the VIC-20, and at that time it
- would have been possible to restore plan 1, a fast serial bus. Note
- that this would have called for a redesign of the 1540 disk drive,
- which also used a VIA. As best I can estimate - and an article in
- the IEEE Spectrum magazine supports this - the matter was discussed
- within Commodore, and it was decided that VIC-20 compatibility was
- more important than disk speed. Perhaps the prospect of a 1541
- redesign was an important part of the decision, since current
- inventories needed to be taken into account. But to keep the
- Commodore 64 as a "bit-banger", a new problem arose.
-
- The higher-resolution screen of the 64 (as compared to the VIC-20)
- could not be supported without stopping the CPU every once in a while.
- To be exact: Every 8 screen raster lines (each line of text), the CPU
- had to be put into a WAIT condition for 42 microseconds, so as to
- allow the next line of screen text and color nybbles to be swept into
- the chip.(More time would be needed if sprites were being used).
- But the bits were coming in on the serial bus faster than that:
- a bit would come in about every 20 microseconds! So the poor CPU,
- frozen for longer than that, would miss some serial bits completely!
- Commodore's solution was to slow down the serial bus even more.
- That's why the VIC-20 has a faster serial bus than the 64, even though
- the 64 was capable, technically, of running many times faster.
-
- Fast disk finally came into its own with the Commodore 128."
-
- --Jim
-
- Q $07C) On Commodore computers, how much RAM is set aside as a tape buffer?
-
- A $07C) 192 bytes is used as a tape buffer. Blocks of data on tape are 192
- bytes long.
-
- Q $07D) On Commodore computers, most every peripheral has a device number.
- What is the device number of the screen?
-
- A $07D) #3
-
- Q $07E) What is the device number of the keyboard?
-
- A $07E) #0
-
- Q $07F) Commodore computers use 2's-complement notation to represent integers.
- What is the 2's-complement hex representation of the signle byte -1?
-
- A $07F) (This was not a Commodore specific question) Commodore computers
- use this notation to represent integer quantities. In 2's complement
- notation, a -1 looks like 11111111(binary) or $FF(hex).
-
- End of Commodore Trivia Edition #8!
-
- Jim Brain
- brain@mail.msen.com
- 2306 B Hartland Road
- Hartland, MI 48353
- (810) 737-7300 x8528
-
-
-
-
- --
- Jim Brain, Embedded Systems Designer, Brain Innovations, Inc. (BII)
- brain@mail.msen.com "Above views DO reflect my employer, since I'm my employer"
- Dabbling in WWW, Embedded Systems, VR, Old CBM computers, and Good Times! -Me-
- <a href=http://www.msen.com/~brain/>BII, VR, CBM, and personal info</a>
-